package com.example.demo.service;

import com.example.demo.model.core.PageVo;
import com.example.demo.model.form.PasswordForm;
import com.example.demo.model.form.UserForm;
import com.example.demo.model.form.UserPasswordForm;
import com.example.demo.model.form.UserProfileForm;
import com.example.demo.model.query.UserQuery;
import com.example.demo.model.vo.LoginUserVO;
import com.example.demo.model.vo.UserProfileVO;
import com.example.demo.model.vo.UserVO;
import com.example.demo.security.model.UserAuthCredentials;

import java.util.List;

public interface SysUserService {

    void add(UserForm roleForm);

    void update(UserForm roleForm);

    void delete(List<String> ids);

    PageVo<UserVO> page(UserQuery query);

    UserForm form(String id);

    UserAuthCredentials getAuthCredentialsByUsername(String username);

    LoginUserVO getLoginUser();

    UserProfileVO getUserProfile(String userId);

    void updateUserProfile(String userId, UserProfileForm form);

    void updateUserPassword(String userId, PasswordForm form);

    void updateUserPassword(UserPasswordForm form);
}
